home *** CD-ROM | disk | FTP | other *** search
Text File | 1993-07-30 | 48.4 KB | 1,519 lines |
-
- IETF Page 1
- July 2, 1993 CLNP for TUBA Internet Draft
-
-
- Use of ISO CLNP in TUBA Environments
-
-
- David M. Piscitello
- Bellcore
- dave@sabre.bellcore.com
-
-
- Status of this Memo
-
- This document is an Internet Draft. Internet Drafts are working
- documents of the Internet Engineering Task Force (IETF), its
- Areas, and its Working Groups. Note that other groups may also
- distribute working documents as Internet Drafts.
-
- Internet Drafts are draft documents valid for a maximum of six
- months. Internet Drafts may be updated, replaced, or obsoleted by
- other documents at any time. It is not appropriate to use
- Internet Drafts as reference material or to cite them other than
- as a "working draft" or "work in progress."
-
- Please check the Internet Draft abstract listing contained in the
- IETF Shadow Directories (cd internet-drafts) to learn the current
- status of this or any other Internet Draft.
-
- This Internet-Draft specifies a profile of the ISO/IEC 8473
- Connectionless-mode Network Layer Protocol (CLNP, [1]) for use in
- conjunction with RFC 1347, TCP/UDP over Bigger Addresses (TUBA,
- [2]). This draft document will be submitted to the RFC editor as
- a protocol specification. Distribution of this memo is unlimited.
- Please send comments to dave@eve.bellcore.com.
-
-
- Abstract
-
- This document describes the use of CLNP to provide the lower-
- level service expected by Transmission Control Protocol (TCP,
- [3]) and User Datagram Protocol (UDP, [4]). CLNP provides
- essentially the same datagram service as Internet Protocol (IP,
- [5]), but offers a means of conveying bigger network addresses
- (with additional structure, to aid routing).
-
- While the protocols offer nearly the same services, IP and CLNP
- are not identical. This document describes a means of preserving
- the semantics of IP information that is absent from CLNP while
- preserving consistency between the use of CLNP in Internet and
- OSI environments. This maximizes the use of already-deployed CLNP
- implementations.
-
-
- Acknowledgments
-
-
-
-
-
-
-
-
-
-
-
- IETF Page 2
- Internet Draft CLNP for TUBA July 2, 1993
-
-
- Many thanks to Ross Callon (Wellfleet Communications), John
- Curran (BBN), Cyndi Jung (3Com), Paul Brooks (UNSW), Brian
- Carpenter (CERN), Keith Sklower (Cal Berkeley), Dino Farinacci
- and Dave Katz (Cisco Systems) and David Oran (DEC) for their
- assistance in composing this text.
-
-
- Conventions
-
- The following language conventions are used in the items of
- specification in this document:
-
- o+ Must, Shall, or Mandatory -- the item is an absolute
- requirement of the specification.
-
- o+ Should or Recommended -- the item should generally be
- followed for all but exceptional circumstances.
-
- o+ May or Optional -- the item is truly optional and may be
- followed or ignored according to the needs of the
- implementor.
-
-
- 1. Terminology
-
- To the extent possible, this document is written in the language
- of the Internet. For example, packet is used rather than
- "protocol data unit", and "fragment" is used rather than
- "segment". There are some terms that carry over from OSI; these
- are, for the most part, used so that cross-reference between this
- document and RFC 994 [6] or ISO/IEC 8473 is not entirely painful.
- OSI acronyms are for the most part avoided.
-
-
- 2. Introduction
-
- The goal of this specification is to allow compatible and
- interoperable implementations to encapsulate TCP and UDP packets
- in CLNP data units. In a sense, it is more of a "hosts
- requirements" document for the network layer of TUBA
- implementations than a protocol specification. It is assumed that
- readers are familiar with RFC 791, RFC 792 [7], RFC 1122 [8],
- and, to a lesser extent, RFC 994 and ISO/IEC 8473. This document
- is compatible with (although more restrictive than) ISO/IEC 8473;
- specifically, the order, semantics, and processing of CLNP header
- fields is consistent between this and ISO/IEC 8473.
-
- [Editor's Note: RFC 994 contains the Draft International Standard
- version of ISO CLNP, in ASCII text. This is not the final version
- of the ISO/IEC protocol specification; however, it should provide
- sufficient background for the purpose of understanding the
- relationship of CLNP to IP, and the means whereby IP information
- is to be encoded in CLNP header fields. Postscript versions of
-
-
-
-
-
-
-
-
-
- IETF Page 3
- July 2, 1993 CLNP for TUBA Internet Draft
-
-
- ISO CLNP and associated routing protocols are available via
- anonymous FTP from merit.edu, and may be found in the directory
- /pub/ISO/IEC.
-
-
- 3. Overview of CLNP
-
- ISO CLNP is a datagram network protocol. It provides
- fundamentally the same underlying service to a transport layer as
- IP. CLNP provides essentially the same maximum datagram size, and
- for those circumstances where datagrams may need to traverse a
- network whose maximum packet size is smaller than the size of the
- datagram, CLNP provides mechanisms for fragmentation (data unit
- identification, fragment/total length and offset). Like IP, a
- checksum computed on the CLNP header provides a verification that
- the information used in processing the CLNP datagram has been
- transmitted correctly, and a lifetime control mechanism ("Time to
- Live") imposes a limit on the amount of time a datagram is
- allowed to remain in the internet system. As is the case in IP, a
- set of options provides control functions needed or useful in
- some situations but unnecessary for the most common
- communications.
-
- Table 1 provides a high-level comparison of CLNP to IP:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- IETF Page 4
- Internet Draft CLNP for TUBA July 2, 1993
-
-
- Function | ISO CLNP | DOD IP
- ------------------------|-----------------------|-----------------------
- Header Length | indicated in octets | in 32-bit words
- Version Identifier | 1 octet | 4 bits
- Lifetime (Time to live) | 500 msec units | 1 sec units
- Flags | Fragmentation allowed,| Don't Fragment,
- | More Fragments | More Fragments,
- | Suppress Error Reports| <not defined>
- Packet Type | 5 bits | <not defined>
- Fragment Length | 16 bits, in octets | 16 bits, in octets
- Header Checksum | 16-bit (Fletcher) | 16-bit
- Total Length | 16 bits, in octets | <not defined>
- Addressing | Variable length | 32-bit fixed
- Data Unit Identifier | 16 bits | 16 bits
- Fragment offset | 16 bits, in octets | 13 bits, 8-octet units
- Higher Layer Protocol | Selector in address | PROTOcol (assigned #)
- Options | Security | Security
- | Priority | Precedence bits in TOS
- | Complete Source Route | Strict Source Route
- | Quality of Service | Type of Service
- | Partial Source Route | Loose Source Route
- | Record Route | Record Route
- | Padding | Padding
- | <defined herein> | Timestamp
-
-
-
- Table 1. Comparison of IP to CLNP
-
- Note that the encoding of options differs between the two
- protocols, as do the means of higher level protocol
- identification. Note also that CLNP and IP differ in the way
- header and fragment lengths are represented, and that the
- granularity of lifetime control (time-to-live) is finer in CLNP.
- Some of these differences are not considered "issues", as CLNP
- provides flexibility in the way that certain options may be
- specified and encoded (this will facilitate the use and encoding
- of certain IP options without change in syntax); others, e.g.,
- higher level protocol identification and timestamp, must be
- accommodated in a transparent manner in this profile for correct
- operation of TCP and UDP, and continued interoperability with OSI
- implementations. Section 4 describes how header fields of CLNP
- must be populated to satisfy the needs of TCP and UDP.
-
- Errors detected during the processing of a CLNP datagram may be
- reported using CLNP Error Reports. Implementations of CLNP for
- TUBA environments must be capable of processing Error Reports
- (this is consistent with the 1992 edition (2) of the ISO/IEC
- 8473 standard). Control messages (e.g., echo request/reply and
- redirect) are similarly handled in CLNP, i.e., identified as
- separate network layer packet types. The relationship between
- CLNP Error and Control messages and Internet Control Message
- Protocol (ICMP, [7]), and issues relating to the handling of
-
-
-
-
-
-
-
-
-
- IETF Page 5
- July 2, 1993 CLNP for TUBA Internet Draft
-
-
- these messages is described in Section 5.
-
- The composition and processing of a TCP pseudo-header when CLNP
- is used to provide the lower-level service expected by TCP and
- UDP is described in Section 6.
-
-
-
- 4. Proposed Internet Header using CLNP
-
- A summary of the contents of the CLNP header, as it is proposed
- for use in TUBA environments, is illustrated in Figure 4-1:
-
-
- 0 1 2 3
- 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | ........Data Link Header........ | NLP ID |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- |Header Length | Version | Lifetime (TTL)|Flags| Type |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | Fragment Length | Checksum |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | Dest Addr Len | Destination Address... |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | ... Destination Address... |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | ... Destination Address... |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | ... Destination Address... |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | ... Destination Address... |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | PROTO field | Src Addr Len | Source Address... |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | ... Source Address... |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | ... Source Address... |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | ... Source Address... |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | ... Source Address... |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | ... Source Address | Reserved | Data Unit... |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | ...Identifier | Fragment Offset |Total Length.. |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | ... of Packet | Options... |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | |
- : :
- | Options (see Table 1) |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-
-
-
-
-
-
-
-
-
- IETF Page 6
- Internet Draft CLNP for TUBA July 2, 1993
-
-
-
- Note that each tick mark represents one bit position.
-
-
-
- Figure 4-1. CLNP for TUBA
-
- Note 1: For illustrative purposes, Figure 4-1 depicts Destination and
- Source Addresses having a length of 19 octets, including the
- PROTO/reserved field. In general, addresses can be variable
- length, up to a maximum of 20 octets, including the
- PROTO/reserved field.
-
- Note 2: Due to differences in link layer protocols, it is not possible
- to ensure that the packet starts on an even alignment. Note,
- however, that many link level protocols over which CLNP is operated
- happen to use a odd length link (e.g., 802.2). (As profiled in
- Figure 4-1, the rest of the CLNP packet is even-aligned.)
-
-
- The encoding of CLNP fields for use in TUBA environments is as
- follows.
-
- 4.1 Network Layer Protocol Identification (NLP ID)
-
- This one-octet field identifies this as the ISO/IEC 8473
- protocol; it must set to binary 1000 0001.
-
- 4.2 Header Length Indication (Header Length)
-
- Header Length is the length of the CLNP header in octets, and
- thus points to the beginning of the data. The value 255 is
- reserved. The header length is the same for all fragments of the
- same (original) CLNP packet.
-
-
-
- 4.3 Version
-
- This one-octet field identifies the version of the protocol; it
- must be set to a binary value 0000 0001.
-
- 4.4 Lifetime (TTL)
-
- Like the TTL field of IP, this field indicates the maximum time
- the datagram is allowed to remain in the internet system. If
- this field contains the value zero, then the datagram must be
- destroyed; a host, however, must not send a datagram with a
- lifetime value of zero. This field is modified in internet
- header processing. The time is measured in units of 500
- milliseconds, but since every module that processes a datagram
- must decrease the TTL by at least one even if it process the
- datagram in less than 500 millisecond, the TTL must be thought of
-
-
-
-
-
-
-
-
-
- IETF Page 7
- July 2, 1993 CLNP for TUBA Internet Draft
-
-
- only as an upper bound on the time a datagram may exist. The
- intention is to cause undeliverable datagrams to be discarded,
- and to bound the maximum CLNP datagram lifetime. [Like IP, the
- colloquial usage of TTL in CLNP is as a coarse hop-count.]
-
- 4.5 Flags
-
- Three flags are defined. These occupy bits 0, 1, and 2 of the
- Flags/Type octet:
-
- 0 1 2
- +---+---+---+
- | F | M | E |
- | P | F | R |
- +---+---+---+
-
- The Fragmentation Permitted (FP) flag, when set to a value of one
- (1), is semantically equivalent to the "may fragment" value of
- the Don't Fragment field of IP; similarly, when set to zero (0),
- the Fragmentation Permitted flag is semantically equivalent to
- the "Don't Fragment" value of the Don't Fragment Flag of IP.
-
- [Editor's Note: If the Fragmentation Permitted field is set to
- the value O, then the Data Unit Identifier, Fragment Offset, and
- Total Length fields are not present. This denotes a single
- fragment datagram. In such datagrams, the Fragment Length field
- contains the total length of the datagram.]
-
- The More Fragments flag of CLNP is semantically and syntactically
- the same as the More Fragments flag of IP; a value of one (1)
- indicates that more segments/fragments are forthcoming; a value
- of zero (0) indicates that the last octet of the original packet
- is present in this segment.
-
- The Error Report (ER) flag is used to suppress the generation of
- an error message by a host/router that detects an error during
- the processing of a CLNP datagram; a value of one (1) indicates
- that the host that originated this datagram thinks error reports
- are useful, and would dearly love to receive one if a host/router
- finds it necessary to discard its datagram(s).
-
- 4.6 Type field
-
- The type field distinguishes data CLNP packets from Error Reports
- from Echo packets. The following values of the type field apply:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- IETF Page 8
- Internet Draft CLNP for TUBA July 2, 1993
-
-
- 0 1 2 3 4 5 6 7
- +---+---+---+---+---+---+---+---+
- | flags | 1 | 1 | 1 | 0 | 0 | => Encoding of Type = data packet
- +---+---+---+---+---+---+---+---+
- | flags | 0 | 0 | 0 | 0 | 1 | => Encoding of Type = error report
- +---+---+---+---+---+---+---+---+
- | flags | 1 | 1 | 1 | 1 | 0 | => Encoding of Type = echo request
- +---+---+---+---+---+---+---+---+
- | flags | 1 | 1 | 1 | 1 | 1 | => Encoding of Type = echo reply
- +---+---+---+---+---+---+---+---+
-
-
-
- Error Report packets are described in Section 5.
-
- Echo packets and their use are described in RFC 1139 [9].
-
-
-
- 4.7 Fragment Length
-
- Like the Total Length of the IP header, the Fragment length field
- contains the length in octets of the fragment (i.e., this
- datagram) including both header and data.
-
- [Note: CLNP also has a Total Length field, that contains the
- length of the original datagram; i.e., the sum of the length of
- the CLNP header plus the length of the data submitted by the
- higher level protocol, e.g., TCP or UDP. See Section 4.12.]
-
- 4.8 Checksum
-
- A checksum is computed on the header only. It is verified at each
- host/router that processes the packet; if header fields are
- changed during processing (e.g., the Lifetime), the checksum is
- modified. If the checksum is not used, this field must be coded
- with a value of zero (0). See Appendix A for algorithms used in
- the computation and adjustment of the checksum. Readers are
- encouraged to see [10] for a description of an efficient
- implementation of the checksum algorithm.
-
- 4.9 Addressing
-
- General purpose CLNP implementations must handle NSAPA addresses
- of variable length up to 20 octets, as defined in ISO/IEC 8348
- [11]. TUBA implementations, especially routers, must accommodate
- these as well. Thus, for compatibility and interoperability with
- OSI use of CLNP, the initial octet of the Destination Address is
- assumed to be an Authority and Format Indicator, as defined in
- ISO/IEC 8348. NSAP addresses may be between 8 and 20 octets long
- (inclusive).
-
-
-
-
-
-
-
-
-
-
-
- IETF Page 9
- July 2, 1993 CLNP for TUBA Internet Draft
-
-
- TUBA implementations must support both ANSI and GOSIP style
- addresses; these are described in RFC 1237 [12], and illustrated
- in Figure 4-2. RFC 1237 describes the ANSI/GOSIP initial domain
- parts as well as the format and composition of the domain
- specific part. It is further recommended that TUBA
- implementations support the assignment of system identifiers for
- TUBA/CLNP hosts defined in [13] for the purposes of host address
- autoconfiguration as described in [14]. Additional considerations
- specific to the interpretation and encoding of the selector part
- are described in sections 4.9.2 and 4.9.4.
-
- _______________
- |<--__IDP_-->_|___________________________________
- |AFI_|__IDI___|___________<--_DSP_-->____________|
- |_47_|__0005__|DFI_|AA_|Rsvd_|_RD_|Area_|ID_|Sel_|
- octets |_1__|___2____|_1__|_3_|__2__|_2__|_2___|_6_|_1__|
-
- Figure 4-2 (a): GOSIP Version 2 NSAP structure.
- ______________
- |<--_IDP_-->_|_____________________________________
- |AFI_|__IDI__|____________<--_DSP_-->_____________|
- |_39_|__840__|DFI_|_ORG_|Rsvd_|RD_|Area_|_ID_|Sel_|
- octets |_1__|___2___|_1__|__3__|_2___|_2_|__2__|_6__|_1__|
-
- IDP Initial Domain Part
- AFI Authority and Format Identifier
- IDI Initial Domain Identifier
- DSP Domain Specific Part
- DFI DSP Format Identifier
- ORG Organization Name (numeric form)
- Rsvd Reserved
- RD Routing Domain Identifier
- Area Area Identifier
- ID System Identifier
- SEL NSAP Selector
-
- Figure 4-2 (b): ANSI NSAP address format for DCC=840
-
- 4.9.1 _D_e_s_t_i_n_a_t_i_o_n__A_d_d_r_e_s_s__L_e_n_g_t_h__I_n_d_i_c_a_t_o_r
-
- This field indicates the length, in octets, of the Destination
- Address.
-
- 4.9.2 _D_e_s_t_i_n_a_t_i_o_n__A_d_d_r_e_s_s
-
- This field contains an OSI NSAP address, as described in Section
- 4.9.
-
- The final octet of the destination address must always contain
- the value of the PROTO field, as defined in IP. The 8-bit PROTO
- field indicates the next level protocol used in the data portion
- of the CLNP datagram. The values for various protocols are
- specified in "Assigned Numbers" [15]. For the PROTO field, the
-
-
-
-
-
-
-
-
-
- IETF Page 10
- Internet Draft CLNP for TUBA July 2, 1993
-
-
- value of zero (0) is reserved.
-
- Tuba implementations that support TCP/UDP as well as OSI should
- use the protocol value (29) reserved for ISO transport protocol
- class 4.
-
- 4.9.3 _S_o_u_r_c_e__A_d_d_r_e_s_s__L_e_n_g_t_h__I_n_d_i_c_a_t_o_r
-
- This field indicates the length, in octets, of the Source
- Address.
-
- 4.9.4 _S_o_u_r_c_e__A_d_d_r_e_s_s
-
- This field contains an OSI NSAP address, as described in Section
- 4.9.
-
- The final octet of the source address is reserved. It may be set
- to the protocol field value on transmission, and shall be ignored
- on reception (the value of zero must not be used).
-
- 4.10 Data Unit Identifier
-
- Like the Identification field of IP, this 16-bit field is used to
- distinguish segments of the same (original) packet for the
- purposes of reassembly.
-
- 4.11 Fragment Offset
-
- Like the Fragment Offset of IP, this 16-bit is used to identify
- the relative octet position of the data in this fragment with
- respect to the start of the data submitted to CLNP; i.e., it
- indicates where in the original datagram this fragment belongs.
-
- 4.12 Total Length
-
- The total length of the CLNP packet in octets is determined by
- the originator and placed in the Total Length field of the
- header. The Total Length field specifies the entire length of the
- original datagram, including both the header and data. This field
- must not be changed in any fragment of the original packet for
- the duration of the packet lifetime.
-
- 4.13 Options
-
- All CLNP options are "triplets" of the form <parameter code>,
- <parameter lenth>, and <parameter value>. Both the parameter
- code and length fields are always one octet long; the length
- parameter value, in octets, is indicated in the parameter length
- field. The following options are defined for CLNP for TUBA.
-
-
-
-
-
-
-
-
-
-
-
-
-
- IETF Page 11
- July 2, 1993 CLNP for TUBA Internet Draft
-
-
- 4.13.1 _S_e_c_u_r_i_t_y
-
- The value of the parameter code field is binary 1100 0101. The
- length field must be set to the length of a Basic (and Extended)
- Security IP option(s) as identified in RFC1108 [16], plus 1.
- Octet 1 of the security parameter value field -- the CLNP
- Security Format Code -- is set to a binary value 0100 0000,
- indicating that the remaining octets of the security field
- contain either the Basic or Basic and Extended Security options
- as identified in RFC 1108. This encoding points to the
- administration of the source address (e.g., ISOC) as the
- administration of the security option; it is thus distinguished
- from the globally unique format whose definition is reserved for
- OSI use. Implementations must examine the PROTO field in the
- source address; if the value of PROTO indicates the CLNP client
- is TCP or UDP, the security option described in RFC1108 is used.
-
- The formats of the Security option, encoded as a CLNP option, is
- as follows. The CLNP option will be used to convey the Basic and
- Extended Security options as sub-options; i.e., the exact
- encoding of the Basic/Extended Security IP Option is carried in a
- single CLNP Security Option, with the length of the CLNP Security
- option reflecting the sum of the lengths of the Basic and
- Extended Security IP Option.
-
-
- +--------+--------+--------+--------+--------+------//-----+---
- |11000100|XXXXXXXX|01000000|10000010|YYYYYYYY| | ...
- +--------+--------+--------+--------+--------+------//-----+------
- CLNP CLNP CLNP BASIC BASIC BASIC
- OPTION OPTION FORMAT SECURITY OPTION OPTION
- TYPE LENGTH CODE TYPE LENGTH VALUE
- (197) (130)
-
-
- ---+------------+------------+----//-------+
- ... | 10000101 | 000LLLLL | |
- -----+------------+------------+----//-------+
- EXTENDED EXTENDED EXTENDED OPTION
- OPTION OPTION VALUE
- TYPE (133) LENGTH
-
-
-
- The syntax, semantics and processing of the Basic and Extended
- IP Security Options are defined in RFC 1108.
-
- 4.13.2 _T_y_p_e__o_f__S_e_r_v_i_c_e
-
- The value of the parameter code field must be set to a value of
- binary 1100 0011 (the CLNP Quality of Service Option Code point).
- The length field must be set to the length of the type of service
- field as identified in RFC 1349, Type of Service in the Internet
-
-
-
-
-
-
-
-
-
- IETF Page 12
- Internet Draft CLNP for TUBA July 2, 1993
-
-
- Protocol Suite [17], plus 1 (i.e., the value is 2). Octet 1 of
- the type of service parameter field is set to a binary value 0100
- 0000, indicating that the remaining octet of the Type Of Service
- field is to be encoded as described in RFC 1349. This encoding
- points to the administration of the source address (e.g., ISOC)
- as the administration of the CLNP QOS option; it is thus
- distinguished from the globally unique QOS format whose
- definition is reserved for OSI use. Implementations must examine
- the PROTO field in the source address; if the value of PROTO
- indicates the CLNP client is TCP or UDP, the TOS described in
- RFC1349 is used.
-
-
- +-----------+----------+----------+----------+
- | 1100 0011 | 00000010 | 01000000 | PPPTTTT0 |
- +-----------+----------+----------+----------+
- CLNP QOS OPTION QOS FORMAT IP TOS
- TYPE (195) LENGTH CODE OCTET
-
-
- The Type of Service octet consists of three fields:
-
-
- 0 1 2 3 4 5 6 7
- +-----+-----+-----+-----+-----+-----+-----+-----+
- | PRECEDENCE | TOS | MBZ |
- +-----+-----+-----+-----+-----+-----+-----+-----+
-
- The first field, labeled "PRECEDENCE" above, is intended to
- denote the importance or priority of the datagram. The second
- field, labeled "TOS" above, denotes how the network should make
- tradeoffs between throughput, delay, reliability, and cost. The
- last field must be zero ("MBZ").
-
- The processing of the type of service option is defined in
- RFC1349. The rules for applying TOS in Error and Report messages
- should correspond to those applied to the corresponding ICMP
- messages; i.e., error messages must always be sent with the
- default TOS; request messages may have any correct TOS value, and
- replies must be sent with the same value in the TOS field as was
- used in the corresponding request message.
-
- [Editor's Note: It has been suggested that the IP precedence map
- directly into a CLNP option, Priority. The feature will be
- provided irrespective of whether precedence is encoded in the TOS
- or Priority option.]
-
- 4.13.3 _P_a_d_d_i_n_g
-
- The padding field is used to lengthen the packet header to a
- convenient size. The parameter code field must be set to a value
- of binary 1100 1100. The value of the parameter length field is
- variable. The parameter value may contain any value.
-
-
-
-
-
-
-
-
-
- IETF Page 13
- July 2, 1993 CLNP for TUBA Internet Draft
-
-
- +----------+----------+-----------+
- | 11001100 | LLLLLLLL | VVVV VVVV |
- +----------+----------+-----------+
-
- 4.13.4 _S_o_u_r_c_e__R_o_u_t_i_n_g
-
- Like the strict source route option of IP, the Complete Source
- Route option of CLNP is used to specify the exact and entire
- route an internet datagram must take. Similarly, the Partial
- Source Route option of CLNP provides the equivalent of the loose
- source route option of IP; i.e., a means for the source of an
- internet datagram to supply (some) routing information to be used
- by gateways in forwarding the internet datagram towards its
- destination.
-
- The parameter code for Source Routing is binary 1100 1000. The
- length of the source routing parameter value is variable.
-
- The first octet of the parameter value is a type code, indicating
- Complete Source Routing (binary 0000 0001) or partial source
- routing (binary 0000 0000). The second octet identifies the
- offset of the next network entity title to be processed in the
- list, relative to the start of the parameter (i.e., a value of 3
- is used to identify the first address in the list). The third
- octet begins the list of network entity titles.
-
- 4.13.5 _R_e_c_o_r_d__R_o_u_t_e
-
- Like the IP record route option, the Record route option of CLNP
- is used to trace the route a CLNP datagram takes.
-
- The parameter code for Record Route is binary 1100 1011. The
- length of the record route parameter value is variable.
-
- The first octet of the parameter value is a type code, indicating
- Complete Source Route (0000 0001) Partial Recording of Route
- (0000 0000). The second octet identifies the offset where the
- next network entity title may be recorded (i.e., the end of the
- current list), relative to the start of the parameter (i.e., a
- value of 3 is used to identify the initial recording position).
- If recording of route has been terminated (I'll be back...), this
- octet has a value 255. The third octet begins the list of network
- entity titles.
-
- 4.13.6 _T_i_m_e_s_t_a_m_p
-
- [Editor's Note: There is no timestamp option in edition 1 of
- ISO/IEC 8473, but the option has been proposed and submitted to
- ISO/IEC JTC1/SC6.]
-
- The parameter code value 1110 1110 is used to identify the
- Timestamp option; the syntax and semantics of Timestamp are
- identical to that defined in IP.
-
-
-
-
-
-
-
-
-
- IETF Page 14
- Internet Draft CLNP for TUBA July 2, 1993
-
-
- The Timestamp Option is defined in RFC 791. The CLNP parameter
- code 1110 1110 is used rather than the option type code 68 to
- identify the Timestamp option, and the parameter value conveys
- the option length. Octet 1 of the Timestamp parameter value shall
- be encoded as the pointer (octet 3 of IP Timestamp); octet 2 of
- the parameter value shall be encoded as the overflow/format octet
- (octet 4 of IP Timestamp); the remaining octets shall be used to
- encode the timestamp list. The size is fixed by the source, and
- cannot be changed to accommodate additional timestamp
- information.
-
-
- +--------+--------+--------+--------+
- |11101110| length | pointer|oflw|flg|
- +--------+--------+--------+--------+
- | network entity title |
- +--------+--------+--------+--------+
- | timestamp |
- +--------+--------+--------+--------+
- | . |
- .
-
-
-
- 5. Error Reporting and Control Message Handling
-
- CLNP and IP differ in the way in which errors are reported to
- hosts. In IP environments, the Internet Control Message Protocol
- (ICMP, [7]) is used to return (error) messages to hosts that
- originate packets that cannot be processed. ICMP messages are
- transmitted as user data in IP datagrams. Unreachable
- destinations, incorrectly composed IP datagram headers, IP
- datagram discards due to congestion, and lifetime/reassembly time
- exceeded are reported; the complete internet header that caused
- the error plus 8 octets of the segment contained in that IP
- datagram are returned to the sender as part of the ICMP error
- message. For certain errors, e.g., incorrectly composed IP
- datagram headers, the specific octet which caused the problem is
- identified.
-
- In CLNP environments, an unique message type, the Error Report
- type, is used in the network layer protocol header to distinguish
- Error Reports from CLNP datagrams. CLNP Error Reports are
- generated on detection of the same types of errors as with ICMP.
- Like ICMP error messages, the complete CLNP header that caused
- the error is returned to the sender in the data portion of the
- Error Report. Implementations should return at least 8 octets of
- the datagram contained in the CLNP datagram to the sender of the
- original CLNP datagram. Here too, for certain errors, the
- specific octet which caused the problem is identified
-
- A summary of the contents of the CLNP Error Report, as it is
- proposed for use in TUBA environments, is illustrated in Figure
-
-
-
-
-
-
-
-
-
- IETF Page 15
- July 2, 1993 CLNP for TUBA Internet Draft
-
-
- 5-1:
-
-
- 0 1 2 3
- 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | ........Data Link Header........ | NLP ID |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- |Header Length | Version | Lifetime (TTL)| 000 | Type=ER |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | TOTAL Length of Error Report | Checksum |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | Dest Addr Len | Destination Address... |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | ... Destination Address... |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | ... Destination Address... |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | ... Destination Address... |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | ... Destination Address... |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | PROTO field | Src Addr Len | Source Address... |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | ... Source Address... |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | ... Source Address... |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | ... Source Address... |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | ... Source Address... |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | ... Source Address | Reason for Discard (type/len) |
- | | 1100 0001 | 0000 0010 |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | Reason for Discard | Options... |
- | code | pointer | |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | Options |
- : :
- | |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-
- Note that each tick mark represents one bit position.
-
-
- Figure 5-1. Error Report Format
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- IETF Page 16
- Internet Draft CLNP for TUBA July 2, 1993
-
-
- 5.1 Rules for processing an Error Report
-
- The following is a summary of the rules for processing an Error
- Report:
-
- o+ An Error Report is not generated to report a problem
- encountered while processing an Error Report.
-
- o+ Error Reports may not be fragmented (hence, the
- fragmentation part is absent).
-
- o+ The Reason for Discard Code field is populated with one of
- the values from Table 5-1.
-
- o+ The Pointer field is populated with number of the first
- octet of the field that caused the Error Report to be
- generated. If it is not possible to identify the offending
- octet, this field must be zeroed.
-
- o+ If the Priority or Type of Service option is present in the
- errored datagram, the Error Report shall specify the same
- option, using the value specified in the original datagram.
-
- o+ If the Security option is present in the errored datagram,
- the Error Report shall specify the same option, using the
- value specified in the original datagram; if the Security
- option is not supported, no Error Report is to be generated
- (i.e., "silently discard" the received datagram).
-
- o+ If the Complete Source Route option is specified in the
- errored datagram, the Error Report must compose a reverse of
- that route, and return the datagram along the same path.
-
- 5.2 Comparison of ICMP and CLNP Error Messages
-
- Table 5-1 provides a loose comparison of ICMP message types and
- codes to CLNP Error Type Codes (values in Internet ASCII):
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- IETF Page 17
- July 2, 1993 CLNP for TUBA Internet Draft
-
-
- CLNP Error Type Codes | ICMP Message (Type, Code)
- ----------------------------------|------------------------------------
- Reason not specified (0) | Parameter Problem (12, 0)
- Protocol Procedure Error (1) | Parameter Problem (12, 0)
- Incorrect Checksum (2) | Parameter Problem (12, 0)
- PDU Discarded--Congestion (3) | Source Quench (4, 0)
- Header Syntax Error (4) | Parameter problem (12, 0)
- Need to Fragment could not (5) | Frag needed, DF set (3, 4)
- Incomplete PDU received (6) | Parameter Problem (12, 0)
- Duplicate Option (7) | Parameter Problem (12, 0)
- Destination Unreachable (128) | Dest Unreachable,Net unknown (3, 0)
- Destination Unknown (129) | Dest Unreachable,host unknown(3, 1)
- Source Routing Error (144) | Source Route failed (3, 5)
- Source Route Syntax Error (145) | Source Route failed (3, 5)
- Unknown Address in Src Route(146) | Source Route failed (3, 5)
- Path not acceptable (147) | Source Route failed (3, 5)
- Lifetime expired (160) | TTL exceeded (11, 0)
- Reassembly Lifetime Expired (161) | Reassembly time exceeded (11, 1)
- Unsupported Option (176) | Parameter Problem (12, 0)
- Unsupported Protocol Version(177) | Parameter problem (12, 0)
- Unsupported Security Option (178) | Parameter problem (12, 0)
- Unsupported Src Rte Option (179) | Parameter problem (12, 0)
- Unsupported Rcrd Rte (180) | Parameter problem (12, 0)
- Reassembly interference (192) | Reassembly time exceeded (11,1)
-
-
- Table 5-1. Comparison of CLNP Error Reports to ICMP Error Messages
-
- Note 1: The current use of the source quench is only
- when packets are discarded, and thus the current use
- meaning is the same; if a future RFC describes a more
- robust treatment of the source quench, the applicability
- of this CLNP Error Report Type should be reconsidered.
-
- Note 2: There are no corresponding CLNP Error Report Codes for the
- following ICMP error message types:
- - Protocol Unreachable (3, 2)
- - Port Unreachable (3, 3)
- [ED. There are error code points available in the ER type
- code block that can be used to identify these message types.]
-
-
-
- 6. Pseudo-Header Considerations
-
- A checksum is computed on UDP and TCP segments to verify the
- integrity of the UDP/TCP segment. To further verify that the
- UDP/TCP segment has arrived at its correct destination, a
- pseudo-header consisting of information used in the delivery of
- the UDP/TCP segment is composed and included in the checksum
- computation.
-
-
-
-
-
-
-
-
-
-
-
- IETF Page 18
- Internet Draft CLNP for TUBA July 2, 1993
-
-
- To compute the checksum on a UDP or TCP segment prior to
- transmission, implementations must compose a pseudo-header to the
- UDP/TCP segment consisting of the following information that will
- be used when composing the CLNP datagram:
-
- o+ Destination Address Length Indicator
-
- o+ Destination Address (including PROTO field)
-
- o+ Source Address Length Indicator
-
- o+ Source Address (including Reserved field)
-
- o+ A two-octet encoding of the Protocol value
-
- o+ TCP/UDP segment length
-
- Figure 5-1 illustrates the resulting pseudo-header when both
- source and destination addresses are maximum length.
-
-
- 0 1 2 3
- 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | Dest Addr Len | Destination Address... |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | ... Destination Address... |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | ... Destination Address... |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | ... Destination Address... |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | ... Destination Address... |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | (PROTO) | Src Addr Len | Source Address... |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | ... Source Address... |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | ... Source Address... |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | ... Source Address... |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | ... Source Address... |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | ... | (Reserved) | Protocol |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | UDP/TCP segment length |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-
- Figure 5-1. Pseudo-header
-
- If the length of the {source address length indicator + source
- address + destination address indicator + destination address }
-
-
-
-
-
-
-
-
-
- IETF Page 19
- July 2, 1993 CLNP for TUBA Internet Draft
-
-
- is not an integral number of octets, a trailing 0x0 nibble is
- padded. If GOSIP compliant NSAP addresses are used, this never
- happens (this is known as the Farinacci uncertainty principle).
- The last byte in the Destination Address has the value 0x06 for
- TCP and 0x11 for UDP, and that the Protocol field is encoded
- 0x0006 for TCP and 0x0011 for UDP If needed, an octet of zero is
- added to the end of the UDP/TCP segment to pad the datagram to a
- length that is a multiple of 16 bits. In all other respects,
- rules for computing the checksum are consistent with RFC 793 and
- RFC 768.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- IETF Page 20
- Internet Draft CLNP for TUBA July 2, 1993
-
-
- 7. REFERENCES
-
- [1] ISO/IEC 8473-1992. International Standards Organization -- Data
- Communications -- Protocol for Providing the Connectionless-mode
- Network Service, Edition 2.
-
- [2] Callon, R., TCP/UDP over Bigger Addresses (TUBA), Request for
- Comments 1347, Network Information Center, SRI
- International, Menlo Park, CA, May 1992.
-
- [3] Postel, J., Transmission Control Protocol (TCP). Request for
- Comments 793, Network Information Center, SRI
- International, Menlo Park, CA, 1981 September.
-
- [4] Postel, J., User Datagram Protocol (UDP). Request for Comments 768,
- Network Information Center, SRI International, Menlo Park, CA.
-
- [5] Postel, J., Internet Protocol (IP). Request for Comments 791,
- Network Information Center, SRI International, Menlo Park,
- CA, 1981 September.
-
- [6] Chapin, L., ISO DIS 8473, Protocol for Providing the
- Connectionless Network Service. Request for Comments 994,
- Network Information Center, SRI International, Menlo Park, CA,
- 1986 March.
-
- [7] Postel, J. Internet Control Message Protocol. Request for
- Comments 792, Network Information Center, SRI International,
- Menlo Park, CA 1981 September.
-
- [8] Braden, R.,ed. Requirements for Internet hosts - communication layers
- Request for Comments 1122. Network Information Center, SRI
- International, Menlo Park, CA, 1989 October.
-
- [9] Hagens, R. and C. Wittbrodt, CLNP Ping, Request for Comments
- 1139, Network Information Center, SRI International, Menlo
- Park, CA. 1993 May.
-
- [10] Sklower, K., <checksum implemenation article from CCR>
-
- [11] ISO/IEC 8348-1992. International Standards Organization--Data
- Communications--OSI Network Layer Service and Addressing.
-
- [12] Callon, R., NSAPA Guidelines for the Internet,
- Request for Comments RFC 1237, Network Information Center, SRI
- International, Menlo Park, CA.
-
- [13] Piscitello, D., Assignment of System Identifiers for TUBA/CLNP
- hosts, Internet-drafts (draft-tuba-sysids-01.txt).
-
- [14] ISO/IEC 9542:1988/PDAM 1. Information Processing Systems -- Data
- Communications -- End System to Intermediate System Routeing
- Exchange Protocol for use in conjunction with the protocol for
-
-
-
-
-
-
-
-
-
- IETF Page 21
- July 2, 1993 CLNP for TUBA Internet Draft
-
-
- providing the connectionless-mode network service -- Amendment 1:
- Dynamic Discovery of OSI NSAP Addresses by End Systems.
-
- [15] Reynolds, J., and J. Postel, Assigned Numbers.
- Request for Comments 1340, Network Information Center, SRI
- International, Menlo Park, CA. 1992 July.
-
- [16] Kent, S., Security Option for IP,
- Request for Comments 1108, Network Information Center, SRI
- International, Menlo Park, CA.
-
- [17] Almquist, P., Type of Service in the Internet
- Protocol Suite. Request for Comments 1349, Network Information
- Center, SRI International, Menlo Park, CA.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- IETF Page 22
- Internet Draft CLNP for TUBA July 2, 1993
-
-
- Appendix A. Checksum Algorithms (from ISO/IEC 8473)
-
-
-
- Symbols used in algorithms:
- c0, c1 variables used in the algorithms
- i position of octet in header (first
- octet is i=1)
- Bi value of octet i in the header
- n position of first octet of checksum (n=8)
- L Length of header in octets
- X Value of octet one of the checksum parameter
- Y Value of octet two of the checksum parameter
-
- Addition is performed in one of the two following modes:
-
- o+ modulo 255 arithmetic;
-
- o+ eight-bit one's complement arithmetic;
-
- The algorithm for Generating the Checksum Parameter Value is as
- follows:
-
- A. Construct the complete header with the value of the
- checksum parameter field set to zero; i.e., c0 <- c1 <- 0;
-
- B. Process each octet of the header sequentially from i=1 to L
- by:
-
- o+ c0 <- c0 + Bi
-
- o+ c1 <- c1 + c0
-
- C. Calculate X, Y as follows:
-
- o+ X <- (L - 8)(c0 - c1) modulo 255
-
- o+ Y <- (L - 7)(-C0) + c1
-
- D. If X = 0, then X <- 255
-
- E. If Y = 0, then Y <- 255
-
- F. place the values of X and Y in octets 8 and 9 of the
- header, respectively
-
- The algorithm for checking the value of the checksum parameter is
- as follows:
-
- A. If octets 8 and 9 of the header both contain zero, then the
- checksum calculation has succeeded; else if either but not
- both of these octets contains the value zero then the
- checksum is incorrect; otherwise, initialize: c0 <- c1 <- 0
-
-
-
-
-
-
-
-
-
- IETF Page 23
- July 2, 1993 CLNP for TUBA Internet Draft
-
-
- B. Process each octet of the header sequentially from i = 1 to
- L by:
-
- o+ c0 <- c0 + Bi
-
- o+ c1 <- c1 + c0
-
- C. When all the octets have been processed, if c0 = c1 = 0,
- then the checksum calculation has succeeded, else it has
- failed.
-
- There is a separate algorithm to adjust the checksum parameter
- value when a octet has been modified (such as the TTL). Suppose
- the value in octet k is changed by Z = newvalue - oldvalue. If X
- and Y denote the checksum values held in octets n and n+1
- respectively, then adjust X and Y as follows:
-
- If X = 0 and Y = 0 then do nothing, else if X = 0 or Y = 0 then
- the checksum is incorrect, else:
-
- X <- (k - n - 1)Z + X modulo 255
-
- Y <- (n - k)Z + Y modulo 255
-
- If X = 0, then X <- 255; if Y = 0, then Y <- 255.
-
- In the example, n = 89; if the octet altered is the TTL (octet
- 4), then k = 4. For the case where the lifetime is decreased by
- one unit (Z = -1), the assignment statements for the new values
- of X and Y in the immediately preceeding algorithm simplify to:
-
- X <- X + 5 Modulo 255
-
- Y <- Y - 4 Modulo 255
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-